Machine vision systems are known for use in industrial applications to acquire an image of an object, recognize the object and/or analyze the object. These systems are in use in numerous applications, including, but not limited to, remote locations, locations observing moving equipment, locations with a small area or a reduced clearance for a human observer, locations of unpredictable or extreme weather conditions, locations of low ambient light, and/or locations in which a human observer is not practicable. Typically, these machine vision systems may include a single camera or, in a stereo vision application, utilize at least two cameras.
In a single camera machine vision system application, an image is captured and segmented. The object(s) or scene(s) of the image is subsequently analyzed based upon changes in the intensity of the image. This may include the recognition and/or measurement of the dimensions of the object(s) and/or scene(s) in the image. For example, edges and/or regions of the object(s) or scene(s) of the image are detected based upon changes in image intensity.
However, vision system applications based on image intensity have limitations. Notably, intensity changes in the image do not always occur at a discontinuity in depth of the object(s) or scene(s), Accordingly, the vision systems utilizing changes in intensity often do not reflect the true structure of the scene(s) or the true detail of the object(s). The resulting image analysis leads to false or inaccurate results.
In a stereo machine vision system application, at least two cameras are provided at a known geometry from one or more object(s) or scene(s). The cameras concurrently or simultaneously capture separate images of the same object(s) or scene(s). The object(s) or scene(s) of the images are subsequently analyzed based upon disparities between the images. This analysis may include recognizing and or measuring the dimensions of the object(s) and/or scene(s) in the images. For example, the images are analyzed to establish corresponding points of the object(s) and/or scene(s) on the separate images. The depth of the object(s) and/or scene(s) in the images can subsequently be ascertained through further analysis, including through algorithms which consider the disparities between the corresponding points and the known geometry of the cameras in relation to the object(s) or scene(s). The depth information. allows the vision system application to recognize and/or measure the dimensions of the object(s) and/or scenes) in the images.
However, vision system applications based on multiple image analysis through corresponding points have limitations. For example, in order to obtain information from multiple images, the corresponding points of the images must he correctly matched. However, matching of the images can be very difficult, and at times impossible, due to a number of factors, including, occlusions in one or multiple images and/or improper or inaccurate assumptions in the algorithms for matching. If the images are not matched, information from the images cannot be ascertained. Further, the algorithms for analyzing images work effectively in controlled environments, such as laboratory conditions. However, in uncontrolled environments, such as industrial applications, these algorithms generate errors and inconsistencies in the matching and analysis of images due to factors including, but not limited to, changing lighting conditions, changing background conditions, environmental interferences adding noise to an image, and/or moving, object(s). Further, the geometry and spatial relationship of the cameras must be constant in order to correctly reconstruct and analyze an image. However, the geometry and spatial relationship of the cameras can be difficult to maintain in some industrial applications, for example in railway applications. Vibration, movement of the rail, and/or movement of the ties on the rail ballast can adversely change the geometry and spatial relationship of the cameras, leading to an inaccurate analysis of the images.
In addition, known systems struggle with small depth discontinuities. For example, known systems overlook or fail to identify small depth discontinuities, as small depth discontinuities may have a texture or color in the foreground which is similar to the background. Likewise, for example, known systems detect patterns on a planar surface which do not reflect the true boundaries of an object. Both of these instances in known systems result in false or inaccurate results.